EFCF PostalCodes Entiteit maken
Probleem
Creëer een nieuwe database met daarin een tabel met de naam PostalCodes in de database met de naam X (X is voor mij JefInghelbrecht, dat kan om het even welke naam van een database zijn) met behulp van EFCF.
Studiemateriaal
Oplossing
- Open of creëer project LerenWerkenMetEF
- Indien nodig ASP.NET MVC package updaten of installeren
- Indien nodig installeer EF package (EF installeren)
- Voeg connectie string toe in web.config (EF connectiestring configureren)
- Model PostalCodes toevoegen (info over Data Annotations API vind je in EF object relational mapping met attributen en in EF Business regels toevoegen met attributen)
using System.ComponentModel.DataAnnotations; namespace LerenWerkenMetEFCF.Models { public class PostalCodes { [Key] [Required] public int Id { get; set; } [Required] [MinLength(4, ErrorMessage = "Postcode bestaat uit minimum 4 cijfers.")] [MaxLength(4, ErrorMessage = "Postcode bestaat uit maximum 4 cijfers.")] public string PostalCode { get; set; } [Required] [MaxLength(50, ErrorMessage = "Postcode bestaat uit maximum 50 cijfers.")] public string Location { get; set; } } }
- DbContext (info over de DbContext vind je in EF context)
- code bestand toegevoegd in de map Models met de naam MyModel.Context.cs
- een klasse maken met de naam JefInghelbrechtEntities. JefInghelbrecht verwijst naar de naam van de database.
- het argurment voor de constructor van de baseklasse is de naam van de configuratiestring in web.config
- een DbSet collectie toevoegen voor Zipcodes objecten
using System.Data.Entity; namespace LerenWerkenMetEFCF.Models { public class MyEntities : DbContext { public MyEntities() : base("name=JefInghelbrechtWindowsAuthentication") { } public virtual DbSet
PostalCodes { get; set; } } }
- Controller (info over de controller vind je in ASP.NET MVC Controllers)
- Action methode in
HomeController
klasse in het bestand HomeController.cs in de map Controllers toevoegen om de database te creëren:using System; using System.Web.Mvc; namespace LerenWerkenMetEFCF.Controllers { public class HomeController : Controller { public ActionResult CreateDatabase() { ViewBag.Message = "Oefenwebsite EFCF een database maken"; ViewBag.DatabaseMessage = "Database op het punt aan te maken"; try { LerenWerkenMetEFCF.Models.MyEntities JIE = new Models.MyEntities(); JIE.Database.Create(); ViewBag.DatabaseMessage = "Database gemaakt!"; } catch (Exception e) { ViewBag.DatabaseMessage = e.Message; } return View("Index"); } } }
- Action method in de klasse hierboven toevoegen om de Index pagina van in de Views/Home map te tonen wanneer de gebruiker erom vraagt:
public ActionResult Index() { ViewBag.Message = "Oefenwebsite EFCF"; return View(); }
- Action methode in
- View (info over view vind je in ASP.NET MVC Views)
- Layout pagina toevoegen in een Views/
Shared
map - View met de naam Index in de Views/Home map
- link op die pagina toevoegen om de database te maken
- Layout pagina toevoegen in een Views/
2016-11-23 13:18:13